package framework.account;

import framework.history.TransactionHistory;
import framework.interfaces.IAccount;
import framework.interfaces.IAccountType;
import framework.interfaces.ICustomer;
import framework.interfaces.ITransactionHistory;

public abstract class CustomerAccount implements IAccount {

	protected IAccountType accountType;

	protected ICustomer accountHolder;

	protected ITransactionHistory accountHistory;

	public CustomerAccount(IAccountType accountType, ICustomer accountHolder) {
		this.accountType = accountType;
		this.accountHolder = accountHolder;
		accountHistory = new TransactionHistory();
	}

	@Override
	public IAccountType getAccountType() {
		return accountType;
	}

	@Override
	public ICustomer getAccountHolder() {
		return accountHolder;
	}

	@Override
	public ITransactionHistory getHistory() {
		return accountHistory;
	}
}
